1. Technical Field
The present application relates generally to an improved data processing system and method. More specifically, the present application is directed to scheduling tasks across multiple processor units of differing capacity.
2. Description of Related Art
A central processing unit (CPU) is the computing part of the computer. Also generally called a “processor,” the CPU is made up of the instruction decoders, schedulers, execution units, and the like that perform the functions associated with executing computer program instructions. The CPU, clock, and main memory make up a typical computer. A complete computer system requires the addition of control units, input and output devices, storage devices, and an operating system.
A multiprocessing architecture comprises multiple processor units (PUs), residing in one cabinet, which may share the same memory and may have dedicated memory, referred to as a local store. As processing needs increase, one may add additional PUs to absorb the increased processing volume. Multiprocessing architectures range from two to as many as thousands, or even more, processors.
A heterogeneous multiprocessing architecture comprises multiple PUs that are not the same. In some environments, this may mean that the PUs are identical, but running different operating systems, for instance. However, as used herein, a heterogeneous multiprocessing architecture comprises multiple PUs that have different architectures and/or processing capacity. In a heterogeneous multiprocessing system, optimal scheduling of tasks, sometimes referred to as processes, on the PUs with varying capacity presents a difficult problem. Current operating system offerings do not have a solution for handling scheduling of tasks across multiple processor units of different capacity.